package ltd.newbee.mall.service;

import ltd.newbee.mall.api.mall.param.SaveCartItemParam;
import ltd.newbee.mall.api.mall.param.UpdateCartItemParam;
import ltd.newbee.mall.api.mall.vo.NewBeeMallShoppingCartItemVO;
import ltd.newbee.mall.entity.NewBeeMallShoppingCartItem;
import ltd.newbee.mall.entity.PageQuery;
import ltd.newbee.mall.entity.PageResult;

import java.util.List;

public interface NewBeeMallShoppingCartService {
    /**
     * 我的购物车(分页数据)
     */
    PageResult getMyShoppingCartItems(PageQuery pageQuery);

    /**
     * 获取我的购物车中的列表数据
     */
    List<NewBeeMallShoppingCartItemVO> getMyShoppingCartItems(Long userId);

    /**
     * 保存商品至购物车中
     */
    String saveNewBeeMallCartItem(SaveCartItemParam saveCartItemParam, Long userId);

    /**
     * 修改购物车中的属性
     */
    String updateNewBeeMallCartItem(UpdateCartItemParam updateCartItemParam, Long userId);

    /**
     * 获取购物项详情
     */
    NewBeeMallShoppingCartItem getNewBeeMallCartItemById(Long newBeeMallShoppingCartItemId);

    /**
     * 根据userId和cartItemIds获取对应的购物项记录
     */
    List<NewBeeMallShoppingCartItemVO> getCartItemsForSettle(List<Long> cartItemIds, Long newBeeMallUserId);

    /**
     * 删除购物车中的商品
     */
    Boolean deleteById(Long shoppingCartItemId, Long userId);

    /**
     * 批量删除购物车中的商品
     */
    public int deleteByIds(List<Long> shoppingCartItemIds, Long userId);
}
